home *** CD-ROM | disk | FTP | other *** search
/ Programming in Microsoft Windows with C# / Programacion en Microsoft Windows con C#.iso / Original Code / Clip Drag and Drop / ClipText / ClipText.cs next >
Encoding:
Text File  |  2001-01-15  |  2.6 KB  |  87 lines

  1. //---------------------------------------
  2. // ClipText.cs ⌐ 2001 by Charles Petzold
  3. //---------------------------------------
  4. using System;
  5. using System.Drawing;
  6. using System.Windows.Forms;
  7.  
  8. class ClipText: Form
  9. {
  10.      string   strText = "Sample text for the clipboard";
  11.      MenuItem miCut, miCopy, miPaste;
  12.  
  13.      public static void Main()
  14.      {
  15.           Application.Run(new ClipText());
  16.      }
  17.      public ClipText()
  18.      {
  19.           Text = "Clip Text";
  20.           ResizeRedraw = true;
  21.  
  22.           Menu = new MainMenu();
  23.  
  24.                // Edit menu
  25.  
  26.           MenuItem mi = new MenuItem("&Edit");
  27.           mi.Popup += new EventHandler(MenuEditOnPopup);
  28.           Menu.MenuItems.Add(mi);
  29.  
  30.                // Edit Cut menu item
  31.  
  32.           miCut = new MenuItem("Cu&t");
  33.           miCut.Click += new EventHandler(MenuEditCutOnClick);
  34.           miCut.Shortcut = Shortcut.CtrlX;
  35.           Menu.MenuItems[0].MenuItems.Add(miCut);
  36.  
  37.                // Edit Copy menu item
  38.  
  39.           miCopy = new MenuItem("&Copy");
  40.           miCopy.Click += new EventHandler(MenuEditCopyOnClick);
  41.           miCopy.Shortcut = Shortcut.CtrlC;
  42.           Menu.MenuItems[0].MenuItems.Add(miCopy);
  43.  
  44.                // Edit Paste menu item
  45.  
  46.           miPaste = new MenuItem("&Paste");
  47.           miPaste.Click += new EventHandler(MenuEditPasteOnClick);
  48.           miPaste.Shortcut = Shortcut.CtrlV;
  49.           Menu.MenuItems[0].MenuItems.Add(miPaste);
  50.      }
  51.      void MenuEditOnPopup(object obj, EventArgs ea)
  52.      {
  53.           miCut.Enabled = 
  54.           miCopy.Enabled = strText.Length > 0;
  55.           miPaste.Enabled = 
  56.                     Clipboard.GetDataObject().GetDataPresent(typeof(string));
  57.      }
  58.      void MenuEditCutOnClick(object obj, EventArgs ea)
  59.      {
  60.           MenuEditCopyOnClick(obj, ea);
  61.           strText = "";
  62.           Invalidate();
  63.      }
  64.      void MenuEditCopyOnClick(object obj, EventArgs ea)
  65.      {
  66.           Clipboard.SetDataObject(strText, true);
  67.      }
  68.      void MenuEditPasteOnClick(object obj, EventArgs ea)
  69.      {
  70.           IDataObject data = Clipboard.GetDataObject();
  71.  
  72.           if (data.GetDataPresent(typeof(string)))
  73.                strText = (string) data.GetData(typeof(string));
  74.  
  75.           Invalidate();
  76.      }
  77.      protected override void OnPaint(PaintEventArgs pea)
  78.      {
  79.           Graphics grfx = pea.Graphics;
  80.           StringFormat strfmt = new StringFormat();
  81.           strfmt.Alignment = strfmt.LineAlignment = StringAlignment.Center;
  82.  
  83.           grfx.DrawString(strText, Font, new SolidBrush(ForeColor),
  84.                           ClientRectangle, strfmt);
  85.      }
  86. }
  87.